/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package almacen.bean;

import almacen.bean.Clientes;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.Serializable;
import javax.persistence.*;

/**
 *
 * @author Antonio
 */
@Entity
@Table(name = "clientes_direccion", catalog = "bd_almacen", schema = "public")
@NamedQueries({
    @NamedQuery(name = "ClientesDireccion.findAll", query = "SELECT c FROM ClientesDireccion c"),
    @NamedQuery(name = "ClientesDireccion.findByDirCodigo", query = "SELECT c FROM ClientesDireccion c WHERE c.dirCodigo = :dirCodigo"),
    @NamedQuery(name = "ClientesDireccion.findByDirDescripcion", query = "SELECT c FROM ClientesDireccion c WHERE c.dirDescripcion = :dirDescripcion"),
    @NamedQuery(name = "ClientesDireccion.findByDirComplemento", query = "SELECT c FROM ClientesDireccion c WHERE c.dirComplemento = :dirComplemento"),
    @NamedQuery(name = "ClientesDireccion.findByDirBarrio", query = "SELECT c FROM ClientesDireccion c WHERE c.dirBarrio = :dirBarrio"),
    @NamedQuery(name = "ClientesDireccion.findByDirCiudad", query = "SELECT c FROM ClientesDireccion c WHERE c.dirCiudad = :dirCiudad")})
public class ClientesDireccion implements Serializable {
    @Transient
    private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "dir_codigo")
    @GeneratedValue(strategy= GenerationType.SEQUENCE)
    private Integer dirCodigo;
    @Column(name = "dir_descripcion")
    private String dirDescripcion;
    @Column(name = "dir_complemento")
    private String dirComplemento;
    @Column(name = "dir_barrio")
    private String dirBarrio;
    @Column(name = "dir_ciudad")
    private String dirCiudad;
    @JoinColumn(name = "dir_cliente", referencedColumnName = "cli_codigo")
    @ManyToOne
    private Clientes dirCliente;

    public ClientesDireccion() {
    }

    public ClientesDireccion(Integer dirCodigo) {
        this.dirCodigo = dirCodigo;
    }

    public Integer getDirCodigo() {
        return dirCodigo;
    }

    public void setDirCodigo(Integer dirCodigo) {
        Integer oldDirCodigo = this.dirCodigo;
        this.dirCodigo = dirCodigo;
        changeSupport.firePropertyChange("dirCodigo", oldDirCodigo, dirCodigo);
    }

    public String getDirDescripcion() {
        return dirDescripcion;
    }

    public void setDirDescripcion(String dirDescripcion) {
        String oldDirDescripcion = this.dirDescripcion;
        this.dirDescripcion = dirDescripcion;
        changeSupport.firePropertyChange("dirDescripcion", oldDirDescripcion, dirDescripcion);
    }

    public String getDirComplemento() {
        return dirComplemento;
    }

    public void setDirComplemento(String dirComplemento) {
        String oldDirComplemento = this.dirComplemento;
        this.dirComplemento = dirComplemento;
        changeSupport.firePropertyChange("dirComplemento", oldDirComplemento, dirComplemento);
    }

    public String getDirBarrio() {
        return dirBarrio;
    }

    public void setDirBarrio(String dirBarrio) {
        String oldDirBarrio = this.dirBarrio;
        this.dirBarrio = dirBarrio;
        changeSupport.firePropertyChange("dirBarrio", oldDirBarrio, dirBarrio);
    }

    public String getDirCiudad() {
        return dirCiudad;
    }

    public void setDirCiudad(String dirCiudad) {
        String oldDirCiudad = this.dirCiudad;
        this.dirCiudad = dirCiudad;
        changeSupport.firePropertyChange("dirCiudad", oldDirCiudad, dirCiudad);
    }

    public Clientes getDirCliente() {
        return dirCliente;
    }

    public void setDirCliente(Clientes dirCliente) {
        Clientes oldDirCliente = this.dirCliente;
        this.dirCliente = dirCliente;
        changeSupport.firePropertyChange("dirCliente", oldDirCliente, dirCliente);
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (dirCodigo != null ? dirCodigo.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof ClientesDireccion)) {
            return false;
        }
        ClientesDireccion other = (ClientesDireccion) object;
        if ((this.dirCodigo == null && other.dirCodigo != null) || (this.dirCodigo != null && !this.dirCodigo.equals(other.dirCodigo))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "almacen.view.ClientesDireccion[ dirCodigo=" + dirCodigo + " ]";
    }

    public void addPropertyChangeListener(PropertyChangeListener listener) {
        changeSupport.addPropertyChangeListener(listener);
    }

    public void removePropertyChangeListener(PropertyChangeListener listener) {
        changeSupport.removePropertyChangeListener(listener);
    }
    
}
